/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.coopeud.persistencia.dao;

import edu.coopeud.persistencia.GestorConexion;
import edu.coopeud.persistencia.model.Evento;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;

/**
 *
 * @author Usuario
 */
public class EventoDao {
    
    private SqlSessionFactory sqlSessionFactory;
    
    private static EventoDao instanciaEventoDao;

    private EventoDao() {
        GestorConexion gestorConexion = GestorConexion.getInstanciaGestorConexion();
        sqlSessionFactory = gestorConexion.getSqlSessionFactory();
    }
    
       
    public static EventoDao getInstanciaEventoDao(){
        
        if(instanciaEventoDao == null){
            instanciaEventoDao = new EventoDao();
        }
        
        return instanciaEventoDao;
    }
    
    public List<Evento> obtenerEventos(){
        
        SqlSession session = sqlSessionFactory.openSession();  
        List<Evento> eventos = null;
        
        try {
            eventos = session.selectList("edu.coopeud.persistencia.data.EventoMapper.obtenerEventos");
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            session.close();
        }
        
        return eventos;
        
    }
    
    public Evento obtenerEvento(int cod){
        
        SqlSession session = sqlSessionFactory.openSession();
        Evento evento = null;
        
        try {
            evento = session.selectOne("edu.coopeud.persistencia.data.EventoMapper.obtenerEvento", cod);
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            session.close();
        }
               
        return evento;
                        
    }
    
    public int crearEvento(Evento evento){
    
        SqlSession session = sqlSessionFactory.openSession();
        int respuesta = 0;
                
        try {            
            respuesta = session.insert("edu.coopeud.persistencia.data.EventoMapper.crearEvento", evento);
            session.commit();
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            session.close();
        }              
       
        return respuesta;
        
    }
    
    public int cancelarEvento(Evento evento){
    
        SqlSession session = sqlSessionFactory.openSession();
        int respuesta = 0;
                
        try {            
            respuesta = session.insert("edu.coopeud.persistencia.data.EventoMapper.cancelarEvento", evento);
            session.commit();
        } catch (Exception e) {
            System.out.println(e);
        } finally {
            session.close();
        }              
       
        return respuesta;
        
    }
    
    
    
}
